統計 - 1標本のt検定
目次
この投稿は、統計学で使用される1標本のt検定について説明するために作成されました。
さらに、PythonのScipyライブラリを利用して単一標本 T検定を行います。
1標本のt検定とは? #
1標本のt検定 は、統計分析で使用される仮説検定の方法の一つで、一つの標本に対する平均を検定するのに使用されます。主に母集団の平均が特定の値と同じかどうかを確認したい場合に適用されます。
1標本のt検定は次のような手順で行われます。
1. 仮説の設定 #
H₀ : 𝜇 = 𝜇₀ → 帰無仮説 | 母平均と標本平均は同じである。 |
---|---|
H₁ : 𝜇 ≠ 𝜇₀ → 対立仮説 | 母平均と標本平均は同じではない。 |
2. 標本の抽出 #
母集団から標本を抽出し、その標本の平均を計算します。
3. 仮説検定の統計量の計算 #
t-統計量を計算します。これは、標本平均と仮説に基づく期待平均間の差を示します。
4. 決定/結論 #
計算されたt-統計量が棄却域に入る場合、帰無仮説を棄却し、対立仮説を採用します。
そうでない場合は、帰無仮説を棄却しません。
- 両側検定の場合、棄却域はt分布の両端に対称的な部分です。
帰無仮説を棄却した場合、標本が母集団と異なると結論付けます。
逆に棄却できなかった場合、統計的に有意ではないと結論付けます。
PythonライブラリScipyの利用方法 #
次に、PythonのScipyライブラリを利用して単一標本 T検定を行います。
今回扱うデータには、31本の木の周囲長、高さ、体積が記録されています。
この標本の平均が母平均と一致するかどうかを単一標本 T検定で調べたいと思います。仮説は以下のとおりです。
有意水準は0.05に設定します。
仮説検定
帰無仮説 : 平均は75である。
対立仮説 : 平均は75ではない。
まず、データを読み込みます。
>>> import pandas as pd
>>> df = pd.read_csv("./data/trees.csv")
>>> df.head()
Girth | Height | Volume | |
---|---|---|---|
0 | 8.3 | 70 | 10.3 |
1 | 8.6 | 65 | 10.3 |
2 | 8.8 | 63 | 10.2 |
3 | 10.5 | 72 | 16.4 |
4 | 10.7 | 81 | 18.8 |
また、標本平均「Height」の平均を計算しましょう。
>>> result = df['Height'].mean()
>>> round(result, 2) # (小数点第2位まで四捨五入して計算)
76.0
次に、1標本のt検定のためにScipyライブラリを読み込みます。
>>> from scipy import stats
単一標本 T検定にはScipy内の ttest_1samp を使用して検定します。 参照 : https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_1samp.html
次に、仮説検定の統計量を計算しましょう。
>>> from math import sqrt
>>> t_score, p_value = stats.ttest_1samp(df['Height'], popmean=75)
>>> print(round(t_score, 2), round(p_value, 2))
0.87 0.39
popmeanは帰無仮説で予想された平均と同じです。
上記の統計量に対するp値を計算した後(小数点第4位まで四捨五入して計算)、有意水準0.05での仮説検定の結果、帰無仮説を棄却するかどうかを確認しましょう。
>>> print(round(p_value, 4))
0.3892
>>> if p_value >= 0.05:
print("Accept")
else:
print("Reject")
Accept
したがって、標本平均は母平均と同じであるという帰無仮説を棄却できませんでした。